// StringUtils.ts
/*
// anotherFile.ts
import { StringUtils } from './StringUtils';

const str1: string | null = null;
const str2: string = '';
const str3: string = '   hello world   ';
const str4: string = 'hello world';

console.log(StringUtils.isEmpty(str1)); // true
console.log(StringUtils.isEmpty(str2)); // true
console.log(StringUtils.isEmpty(str3)); // false
console.log(StringUtils.isNotEmpty(str4)); // true
console.log(StringUtils.trim(str3)); // 'hello world'
console.log(StringUtils.isBlank(str3)); // false
console.log(StringUtils.contains(str4, 'hello')); // true
console.log(StringUtils.capitalizeFirstLetter(str4)); // 'Hello world'
*/
export class StringUtils {
	// 判断字符串是否为空
	static isEmpty(str : string | null | undefined) : boolean {
		return str === undefined || str === null || str === '';
	}

	// 判断字符串是否不为空
	static isNotEmpty(str : string | null | undefined) : boolean {
		return !StringUtils.isEmpty(str);
	}

	// 去除字符串两端的空格
	static trim(str : string | null | undefined) : string | null | undefined {
		if (str === null || str === undefined) {
			return str;
		}
		return str.trim();
	}

	// 判断字符串是否只包含空格
	static isBlank(str : string | null | undefined) : boolean {
		if (str === null || str === undefined) {
			return true;
		}
		return str.trim().length === 0;
	}

	// 判断字符串是否包含指定的子串
	static contains(str : string | null | undefined, subStr : string) : boolean {
		if (str === null || str === undefined) {
			return false;
		}
		return str.includes(subStr);
	}

	// 将字符串首字母大写
	static capitalizeFirstLetter(str : string | null | undefined) : string | null | undefined {
		if (str === null || str === undefined || str.length === 0) {
			return str;
		}
		return str.charAt(0).toUpperCase() + str.slice(1);
	}
}